/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.dwh.trigger;

/**
 * Almacena la informacion de una SLU segun el archivo de configuracion.
 * Por ejemplo:
 * <PRE>
 *      slu.slu{id}.name = Nombre de la SLU (Cadena)
 *      slu.slu{id}.status = Estado de la SLU {on|off}
 *      slu.slu{id}.ip = Direccion IP (999.999.999.999)
 *      slu.slu{id}.sdp = Nombre de la SDP (Cadena)
 *
 * Donde id es un numero entero {1, 2, 3, ... , n} que identifica la SLU en el archivo
 * de configuracion.
 * </PRE>
 * @author Jose Carlos Palma
 * @version v1.0
 */
public class SLUInfo {

    /**
     * Almacena el nombre del parametro en el archivo de configuracion (slu.slu{id}.name)
     */
    private String key;
    /**
     * Almacena el nombre de la SLU.
     */
    private String name;
    /**
     * Almacena el status de la SLU.
     */
    private String status;
    /**
     * Almacena la direccion IP de la SLU.
     */
    private String ip;
    /**
     * Almacena el nombre de la SDP.
     */
    private String sdp;

    /**
     * Crea una instancia de QueueInfo.
     * @param key nombre del parametro en el archivo de configuracion.
     * @param name es el nombre de la SLU.
     * @param status es el estado de la SLU (on o off).
     * @param ip es la direccion ip de la SLU.
     * @param sdp es el nombre de la SDP.
     */
    public SLUInfo(String key, String name, String status, String ip, String sdp) {
        this.key = key;
        this.name = name;
        this.status = status;
        this.ip = ip;
        this.sdp = sdp;
    }

    /**
     * Devuelve el nombre del parametro de la SLU.
     * @return the key es el nombre del parametro en el archivo de configuracion
     */
    public String getKey() {
        return key;
    }

    /**
     * Devuelve el nombre de la SLU
     * @return the name es el nombre de la SLU.
     */
    public String getName() {
        return name;
    }

    /**
     * Devuelve el status de la SLU.
     * @return the status es el status de la SLU (on o off).
     */
    public String getStatus() {
        return status;
    }

    /**
     * Devuelve la direccion ip.
     * @return the ip es la ip de la SLU.
     */
    public String getIp() {
        return ip;
    }

    /**
     * Devuelve el nombre de SDP.
     * @return the sdp es el nombre de la SDP
     */
    public String getSdp() {
        return sdp;
    }

    /**
     * Indica si la SLU tiene el status en on.
     * @return true si el status es igual a on.
     */
    public boolean isOn() {
        return this.status.equalsIgnoreCase("on");
    }

    /**
     * Indica si la SLU tiene el status en off.
     * @return true si el status es igual a off.
     */
    public boolean isOff() {
        return this.status.equalsIgnoreCase("off");
    }

    /**
     * Devuelva la representacion del objecto en un String.
     * @return un String
     */
    @Override
    public String toString() {
        StringBuilder retVal = new StringBuilder();

        retVal.append("[SLU: ").append(name).append(", ").append(status);
        retVal.append(", ").append(ip).append(", ").append(sdp).append("]");

        return retVal.toString();
    }
}
